<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 日期对象的拓展方法  => 官方提供,专门操作日期对象的方法

    // 语法: 日期对象.方法();

    // 学习日期对象的拓展方法需要注意:
    // 1. 功能
    // 2. 返回值
    // 3. 是否影响原日期对象

    // 分两类: 获取年月日 星期 时分秒 毫秒  , 设置年月日 星期 时分秒 毫秒

    var date = new Date(); // 2023-9-19
    // console.log(date);

    // 设置年月日 星期 时分秒 毫秒 (修改)  
    // 返回值:  修改后的日期对应的毫秒数
    // 是否影响原日期对象:  是

    // 注意: 设置 月日  时分秒 毫秒时 是否超出临界值
    
    // var result = date.setFullYear(2021);
    // console.log(result);
    // console.log(date);
    // console.log(date.getTime());  // 此时返回值可以不用

    // 设置月份: 月份参数 = 期望月份 - 1

    // date.setMonth(1); // 2023-2-19  
    // console.log(date);

    // 大于最大值
    // date.setMonth(12); // 2023-13-19   => 2024-1-19
    // console.log(date);

    // 小于最小值
    // date.setMonth(-1); // 2023-(-1)-19 => 2022-12-19  
    // console.log(date);


    // 设置日期
    // date.setDate(1);
    // console.log(date);

    // 大于最大值
    // date.setDate(31); // 2023-9-31 => 2023-10-1
    // console.log(date);

    // 小于最小值
    // 小技巧:
    // 本月的第0天 => 上个月的最后一天
    // date.setDate(0); // 2023-9-0  => 2023-8-31 
    // console.log(date);


    // 下个月的第0天 => 本月的最后一天
    // 此方方法有问题: (大月31 向 小月(30 29 28)切换时 会自动换算) 如果今天是8-31 => 9-31 => 10-1
    // date.setMonth(date.getMonth()+1);  //本月的后一个月(8-31 => 9-31 => 10-1)
    // date.setDate(0);  // 10-0  => 结果: 9-30

    // 解决方案:   提前将日期设置为1号 
    // date.setDate(1);   // 如果今天是8-31  => 8--1
    // date.setMonth(date.getMonth()+1);  //本月的后一个月 (此方方法有问题:  => 9-1)
    // date.setDate(0);  // 8-31

    // 注意: 今天是星期几无法设置


    // 设置时分秒
    date.setHours(12);
    date.setMinutes(12);
    date.setSeconds(12);
    date.setMilliseconds(120);

    console.log(date);
    console.log(date.getMilliseconds());  // 12










</script>
</html>